﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace CWMKliens
{
    public partial class RegUserControl : UserControl
    {
        public RegUserControl()
        {
            InitializeComponent();
            for (int i = 1900; i <= DateTime.Now.Year; i++)
            {
                comboBox1.Items.Add(i);
            }

            string[] honapok = {"január", "február", "március", "április",
                "május", "június", "július", "augusztus",
                "szeptember", "október", "november", "december"};

            for (int i = 0; i < 12; i++)
            {
                comboBox2.Items.Add(honapok[i]);
            }

            comboBox3.Items.Clear();
            for (int i = 1; i <= 31; i++)
                comboBox3.Items.Add(i);

            //comboBox1.Text = "év";
            //comboBox2.Text = "hónap";
            //comboBox3.Text = "nap";
            //comboBox4.Text = "Válassz...";
            //comboBox5.Text = "Válassz...";
            //comboBox6.Text = "Válassz...";
            //comboBox7.Text = "Válassz...";
            //comboBox8.Text = "Válassz...";
        }

        private void comboBox2_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (comboBox2.Text == "január" || comboBox2.Text == "március" ||
                comboBox2.Text == "május" || comboBox2.Text == "július" ||
                comboBox2.Text == "augusztus" || comboBox2.Text == "október" ||
                comboBox2.Text == "december")
            {
                comboBox3.Items.Clear();
                for (int i = 1; i <= 31; i++)
                    comboBox3.Items.Add(i);
            }
            else if (comboBox2.Text == "február")
            {
                if ((int.Parse(comboBox1.Text) % 4 == 0) && (int.Parse(comboBox1.Text) % 100 != 0))
                {
                    comboBox3.Items.Clear();
                    for (int i = 1; i <= 29; i++)
                        comboBox3.Items.Add(i);
                }
                else if (int.Parse(comboBox1.Text) % 400 == 0)
                {
                    comboBox3.Items.Clear();
                    for (int i = 1; i <= 29; i++)
                        comboBox3.Items.Add(i);
                }
                else
                {
                    comboBox3.Items.Clear();
                    for (int i = 1; i <= 28; i++)
                        comboBox3.Items.Add(i);
                }
            }
            else if (comboBox2.Text == "április" || comboBox2.Text == "június" ||
                comboBox2.Text == "szeptember" || comboBox2.Text == "november")
            {
                comboBox3.Items.Clear();
                for (int i = 1; i <= 30; i++)
                    comboBox3.Items.Add(i);
            }
            else
            {
                comboBox3.Items.Clear();
                for (int i = 1; i <= 31; i++)
                    comboBox3.Items.Add(i);
            }
        }

        //public void button1_Click(object sender, EventArgs e)
        //{
            #region Eredeti
            //try
            //{
            //    if (textBox1.Text == "")
            //        throw new KitoltesException("Az azonosító üres!");
            //    if (textBox7.Text == "")
            //        throw new KitoltesException("Adja meg az e-mail címét!");
            //    if (textBox2.Text == "")
            //        throw new KitoltesException("Adja meg a vezetéknevét!");
            //    if (textBox3.Text == "")
            //        throw new KitoltesException("Adja meg a keresztnevét!");
            //    if (!(radioButton1.Checked || radioButton2.Checked))
            //        throw new KitoltesException("Válasszon nemet!");
            //    if (comboBox1.Text == "év")
            //        throw new KitoltesException("Válasszon évet!");
            //    if (comboBox2.Text == "hónap")
            //        throw new KitoltesException("Válasszon hónapot!");
            //    if (comboBox3.Text == "nap")
            //        throw new KitoltesException("Válasszon napot!");
            //    if (textBox4.Text == "")
            //        throw new KitoltesException("Adjon meg iránytószámot!");
            //    if (comboBox4.Text == "Válassz...")
            //        throw new KitoltesException("Válasszon végzettséget!");
            //    if (comboBox5.Text == "Válassz...")
            //        throw new KitoltesException("Válasszon foglalkozást!");
            //    if (comboBox6.Text == "Válassz...")
            //        throw new KitoltesException("Válasszon munkaterületet!");
            //    if (!(radioButton3.Checked || radioButton4.Checked))
            //        throw new KitoltesException("Van mobiltelefonja?");
            //    if (comboBox7.Text == "Válassz...")
            //        throw new KitoltesException("Honnan internetezik?");
            //    if (comboBox8.Text == "Válassz...")
            //        throw new KitoltesException("Hány órát internetezik havonta?");
            //    if (textBox5.Text == "" || textBox6.Text == "")
            //        throw new KitoltesException("Adjon meg jelszót!");
            //    if (!(textBox5.Text.Equals(textBox6.Text)))
            //        throw new KitoltesException("A jelszavak nem egyeznek meg!");
            //    if (textBox5.Text.Length < 8 || textBox6.Text.Length < 8)
            //        throw new KitoltesException("A minimális jelszóhossz 8 karakter!");
            //}
            //catch (KitoltesException ex)
            //{
            //    MessageBox.Show(ex.Message, "Hiba!", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            //}
            #endregion            
        //}

        #region Tulajdonságok (csak olvashatók)

        [Category("Vezérlő Adatok")]
        [Description("E-mail megadása.")]
        [DefaultValue("")]
        public string Email 
        {
            get 
            {
                if (!textBox7.Text.Contains('@') || !textBox7.Text.Substring(textBox7.Text.IndexOf("@")).Contains('.'))
                    throw new KitoltesException("Nem érvényes e-mail cím.");
                return textBox7.Text; 
            } 
        }

        [Category("Vezérlő Adatok")]
        [Description("Jelszó megadása.")]
        [DefaultValue("")]
        public string Jelszo { get { return textBox5.Text; } }

        [Category("Vezérlő Adatok")]
        [Description("Jelszó megadása.")]
        [DefaultValue("")]
        public string JelszoEllenorzo { get { return textBox6.Text; } }

        [Category("Vezérlő Adatok")]
        [Description("Becenév.")]
        [DefaultValue("")]
        public string Becenev { get { return textBox1.Text; } }

        [Category("Vezérlő Adatok")]
        [Description("Vezetéknév.")]
        [DefaultValue("")]
        public string Vezeteknev { get { return textBox2.Text; } }

        [Category("Vezérlő Adatok")]
        [Description("Keresztnév.")]
        [DefaultValue("")]
        public string Keresztnev { get { return textBox3.Text; } }

        [Category("Vezérlő Adatok")]
        [Description("Nem megadása.")]
        [DefaultValue("")]
        public bool? Neme 
        {
            get 
            {
                if (radioButton1.Checked)
                    return true;
                if (radioButton2.Checked)
                    return false;
                return null;
            } 
        }

        [Category("Vezérlő Adatok")]
        [Description("Születési idő megadása.")]
        [DefaultValue("")]
        public DateTime? SzuletesiIdo 
        {
            get
            {
                int ev, honap, nap;
                if (comboBox1.Text != "év" || comboBox2.Text != "hónap" || comboBox3.Text != "nap")
                {
                    if (!int.TryParse(comboBox1.Text, out ev))
                        throw new KitoltesException("Adja meg a születési évet.");
                    switch (comboBox2.Text)
                    {
                        case "január": honap = 1;
                            break;
                        case "február": honap = 2;
                            break;
                        case "március": honap = 3;
                            break;
                        case "április": honap = 4;
                            break;
                        case "május": honap = 5;
                            break;
                        case "június": honap = 6;
                            break;
                        case "július": honap = 7;
                            break;
                        case "augusztus": honap = 8;
                            break;
                        case "szeptember": honap = 9;
                            break;
                        case "október": honap = 10;
                            break;
                        case "november": honap = 11;
                            break;
                        case "december": honap = 12;
                            break;
                        default: throw new KitoltesException("Adja meg a születési hónapot.");                        
                    }
                    if (!int.TryParse(comboBox3.Text, out nap))
                        throw new KitoltesException("Adja meg a születési napot.");
                    return new DateTime(ev, honap, nap);
                }
                else
                    return null;
            }
        }

        [Category("Vezérlő Adatok")]
        [Description("Irányítószám megadása.")]
        [DefaultValue("")]
        public string IranyitoSzam { get { return textBox4.Text; } }

        [Category("Vezérlő Adatok")]
        [Description("Város megadása.")]
        [DefaultValue("")]
        public string Varos { get { return textBox8.Text; } }

        [Category("Vezérlő Adatok")]
        [Description("Cím megadása.")]
        [DefaultValue("")]
        public string UtcaHazszam { get { return textBox9.Text; } }

        [Category("Vezérlő Adatok")]
        [Description("Végzettség megadása.")]
        [DefaultValue("")]
        public string IskolaiVegzettseg { get { return comboBox4.Text; } }

        [Category("Vezérlő Adatok")]
        [Description("Foglalkozás megadása.")]
        [DefaultValue("")]
        public string Foglalkozas { get { return comboBox5.Text; } }

        [Category("Vezérlő Adatok")]
        [Description("Munkaterület megadása.")]
        [DefaultValue("")]
        public string MunkaTerulet { get { return comboBox6.Text; } }

        [Category("Vezérlő Adatok")]
        [Description("Van-e mobilja.")]
        [DefaultValue("")]
        public bool? VanMobil
        {
            get
            {
                if (radioButton3.Checked)
                    return true;
                if (radioButton4.Checked)
                    return false;
                return null;
            }
        }

        [Category("Vezérlő Adatok")]
        [Description("Mobilszám megadása.")]
        [DefaultValue("")]
        public string Mobilszam { get { return textBox10.Text; } }

        [Category("Vezérlő Adatok")]
        [Description("Honnan netezik?")]
        [DefaultValue("")]
        public string HonnanNetezik { get { return comboBox7.Text; } }

        [Category("Vezérlő Adatok")]
        [Description("Mennyit netezik?")]
        [DefaultValue("")]
        public string MennyitNetezik { get { return comboBox8.Text; } }

        #endregion

        private void radioButton3_CheckedChanged(object sender, EventArgs e)
        {
            if (radioButton3.Checked)
            {
                textBox10.Enabled = true;
            }
            else
            {
                textBox10.Enabled = false;
            }
        }
    }
}
